package com.jky.trial.service;


import com.jky.trial.entity.Relation;
import com.jky.trial.vo.RelationVo;

import java.util.List;

public interface RelationService {
    /**
     * 创建
     *
     * @param record
     * @return
     */
    int create(Relation record);

    /**
     * 更新
     *
     * @param record
     * @return
     */
    int update(Relation record);

    /**
     * 根据匹配条件查找
     *
     * @param record
     * @return
     */
    List selectBy(Relation record);

    /**
     * @param sourceId
     * @param targetId
     * @param type
     * @return
     */
    int save(Integer sourceId, Integer targetId, Integer type);

    /**
     * 更新关系
     *
     * @param record
     * @return
     */
    int updateRelation(RelationVo record);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    int del(int id);

    /**
     * 根据targetId \ type 批量删除
     *
     * @param targetId
     * @param type
     * @return
     */
    int delTargetId(int targetId, int type); //根据targetId删除

    /**
     * 根据sourceId、type参数批量删除
     *
     * @param sourceId
     * @param type
     * @return
     */
    int delSourceId(int sourceId, int type); //根据sourceId删除

    /**
     * 列表
     *
     * @param record
     * @return
     */
    List<Relation> list(Relation record);

    /**
     * 批量删除关系
     *
     * @return
     */
    int batchDel(Relation record);

    /**
     * 批量创建关系
     *
     * @param list
     * @return
     */
    int batchInsert(List<Relation> list);


    /**
     * 统计
     *
     * @param record
     * @return
     */
    long count(Relation record);

}
